<html>
    <head>
        <title>审计日志贡献者   AuditLogContributors</title>
    </head>
    <body>
        <script>
             /*
                        十一、审计日志贡献者   Audit Log Contributors

                                你可以通过创建一个派生自 AuditLogContributor 类的类来扩展审计系统，该类定义了 PreContribute 和 PostContribute方法。

                                唯一预构建的贡献者是 AspNetCoreAuditLogContributor 类，它为Http请求设置相关属性。

                                贡献者可以设置 AuditLogInfo 类的属性和集合一添加更多信息：

                                eg：
                                    public class MyAuditLogContributor : AuditLogContributor // 继承此类创建审计日志贡献者
                                    {
                                        // 贡献前
                                        // 设置审计日志上下文的AuditInfo类的属性
                                        public override void PreContribute(AuditLogContributionContext context)
                                        {
                                            var currentUser = context.ServiceProvider.GetRequiredService<ICurrentUser>();
                                            context.AuditInfo.SetProperty(  
                                                "MyCustomClaimValue",
                                                currentUser.FindClaimValue("MyCustomClaim") // 从用户请求中携带的某个声明中作为MyCustomClaimValue属性的值
                                            );
                                        }

                                        // 贡献后
                                        public override void PostContribute(AuditLogContributionContext context)
                                        {
                                            context.AuditInfo.Comments.Add("Some comment...");
                                        }
                                    }
                                    
                                    context.ServiceProvider可用于解析来自依赖注入的服务。

                                    context.AuditInfo可用于访问当前审计日志对象以对其进行操作。

                                创建这样的贡献者后，你必须将其添加到AbpAuditingOptions.Contributors列表中：

                                    Configure<AbpAuditingOptions>(options =>
                                    {
                                        options.Contributors.Add(new MyAuditLogContributor());
                                    });
                    */

        </script>
    </body>
</html>